home *** CD-ROM | disk | FTP | other *** search
- Path: hacgate2.hac.com!redwood!ddavenpo
- From: ddavenpo@redwood.hac.com (Darren C Davenport)
- Newsgroups: comp.lang.ada,comp.lang.c++
- Subject: Re: on OO differnces between Ada95 and C++
- Followup-To: comp.lang.ada,comp.lang.c++
- Date: 26 Feb 1996 17:08:39 GMT
- Organization: Hughes Aircraft Company
- Message-ID: <4gspen$ot0@hacgate2.hac.com>
- References: <4gbq7q$g08@qualcomm.com> <3129F185.41C6@Rational.COM> <4gi413$qo1@druid.borland.com>
- NNTP-Posting-Host: redwood.dn.hac.com
-
- Pete Becker (pete@borland.com) wrote:
- : In article <3129F185.41C6@Rational.COM>, jDesquilbet@Rational.COM says...
- : >
- : >- you may have several different definitions for the same class in the
- : >same program, as long as they are never compiled together in the same
- : >compilation unit; example:
- : >
- : >#define private public // *** BERK! ***
- : >#include "...h" // second definition for the same class
- : >#undef private
-
- : This is not true. A program that attempts to do this violates the one
- : definition rule, so it is not a legal C++ program.
- : -- Pete
-
- We need to be careful here with terms used to describe C++ constructs.
- A class name declaration is a C++ declaration (ARM C++ 3.1) not a definition.
- This is what is specified in ".h" files. There can be multiple declarations
- so the above code is legal C++ code. There can only be one definition
- of each object, function, class, and enumerator in a program and these
- are specified in ".cc" files. Mr. Becker is correct about stating that
- there must be only one definition but that rule does not apply in this
- instance.
-
- Darren Davenport
-
-